import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * @description： 广播模式 消息发送流程如下
 * 1.可以有多个消费者
 * 2.每个消费者都有自己的queue（队列）
 * 3.每个队列都要绑定到Exchange（交换机）
 * 4.生产者发送的消息，只能发送到交换机，交换机来决定发给哪个队列，生产者无法决定
 * 5.交换机把消息发送给绑定过的所有队列
 * 6.队列的消费者都能拿到消息，实现一条消息被多个消费者消费
 * @Author MRyan
 * @Date 2020/11/8 21:50
 * @Version 1.0
 */
public class Providers {
    public static void main(String[] args) throws IOException, TimeoutException {
        //获取连接对象
        Connection connection = RabbitMqUtil.getConnection("192.168.43.78", 5672, "/ems", "ems", "123");
        //获取通道对象
        Channel channel = connection.createChannel();
        //将通道声明指定交换机 参数一：交换机的名称 参数二：交换机类型 fanout代表广播类型
        channel.exchangeDeclare("logs", "fanout");

        //发送消息
        channel.basicPublish("logs", "", null, "fanout type message".getBytes());
        //释放资源
        RabbitMqUtil.close(connection, channel);

    }
}
